\chapter{Captura de Requerimientos}

	% á
	% é
	% í
	% ó
	% ú
	% ñ
	
\section{Introducción}

En este capítulo se realiza una descripción general del producto realizado. A su vez, se detalla el proceso computacional que sufrieron los datos a partir de los cambios que se realizaron en la representación de los mismos, haciendo hincapié, en una comparativa del estado anterior y el estado actual de la información y su representación.
Para finalizar, se incorpora la noción de matriz de probabilidad, así también como las dependencias externas utilizadas en este trabajo.

 El propósito de este capítulo es la especificación de requerimientos de software en el marco de la tesis de grado de la carrera Licenciatura en Ciencias de la Computación de FCEFQyN - UNRC denominada \textbf{\emph{Modelado e implementación de probabilidad de mutación asimétrica en la aparición de cepas \vih resistentes a ARVs\footnote{Considerados como en la sección \ref{arvs}} sobre LAV}}. 

 Los requerimientos son provistos por integrantes de \fudepan en su carácter de autores intelectuales de la solución a implementar y colaboradores de dicha tesis.
 
 En este capítulo se describen detalles técnicos del trabajo, siguiendo las convenciones del documento \textit{IEEE 830-1998}\cite{IEEE}, así también como una descripción general del mismo. 
	
\subsection{Convenciones del Documento}
Las palabras clave \emph{DEBE}, \emph{NO DEBE}, REQUERIDO, DEBERÁ, NO DEBERÁ, DEBERÍA, NO DEBERÍA, RECOMENDADO, PUEDE Y OPCIONAL en este documento son interpretadas como esta descripto en el documento RFC 2119.\cite{RFCDoc}\\
	
	
\subsection{Participantes del proyecto}
A continuación se enumeran las personas involucradas en el desarrollo	 de la tesis:
\begin{itemize}
	\item Boretto, Martín: Tesista, FCEFQyN.
	\item Lenarduzzi, Federico: Tesista, FCEFQyN.	
	\item Regis, Germán: Director de tesis, FCEFQyN. 
	\item Biset, Guillermo: Co-Director de tesis, \fudepan.
	\item Gutson, Daniel: Colaborador de tesis, \fudepan.
	\item Bettiol, Favio: Colaborador de tesis, \fudepan. \\
\end{itemize}	
		
		
\subsection{Alcance del Producto}\label{alcance}
 \fudepan cuenta con una librería de ARVs denominada LAV que, en su versión actual, es utilizada para modelar la aparición de cepas resistentes a combinaciones de ARVs. La limitación que presenta dicha librería es la de considerar todas las combinaciones de mutación de cualquier nucleótido a cualquier nucleótido, como equiprobable\footnote{Probabilidad de ocurrencia de dos sucesos idénticas}.

 El producto que se especifica en este documento se denomina \emph{AProba (Asymmetric Pro\-ba\-bi\-li\-ty)}, el cual tiene los siguientes objetivos principales:
\begin{itemize}
	\item Incluir dentro de \textit{LAV} un esquema que modele las distintas probabilidades (no equiprobables) de mutaciones del 		\textit{VIH}.
	\item Incorporar pesos continuos\footnote{Se considera a un peso continuo como el valor (determinado por el virólogo) correspondiente a una resistencia determinada.} de las mutaciones que otorgan resistencia, dentro de los cálculos de aparición de 			
mutantes resistentes con el fin de optimizar la generación de las mismas. Es decir, modelar el hecho de que existen posiciones de	resistencias que ofrecen más resistencias que otras.
\end{itemize}				
		 
 La finalización de este producto, debe permitir a los distintos proyectos que la fundación posee y que utilizan dicha librería (en especial ASO, SAARNA\footnote{Para más información visite \url{http://saarna.googlecode.com}} y ViSi\footnote{Para más información visite \url{http://visi.googlecode.com}}), obtener cálculos de probabilidades más exactos, es decir, más cercanos a la realidad respecto al manejo de mutaciones del \textit{VIH} durante la aparición de cepas resistentes a la acción de \textit{ARVs}, logrando así, aumentar el grado de realismo de las simulaciones obtenidas hasta el momento.\\
		
		
\section{Descripción General}


\subsection{Perspectiva del Producto}
Nuestro producto va a proveer resultados más reales comparados con los obtenidos hasta el momento, ya que se realiza un fuerte hincapié en la metodología utilizada para la ge\-ne\-ra\-ción de mutantes, teniendo en cuenta la secuencia inicial del \vih. Sin embargo, esto no afecta la utilización que, hasta el momento, se realiza de LAV. Además, la extensión debe ser sumamente adaptable a futuras mejoras. Dicha extensión debe poder evaluar distintas combinaciones de ARVs.\\
		
\subsection{Funcionalidad}
La extensión permite generar un listado ordenado de terapias (aplicación de ARVs) que el médico podrá utilizar como guía. Este listado, que representa el tratamiento, se obtiene eligiendo la mejor combinación de ARVs en cada paso, para lograr una mayor estabilidad en el paciente. Dicho listado es generado a partir de la secuencia ARN de una cepa de virus \vih determinada por un análisis de sangre efectuado al paciente, y del conjunto de ARVs disponibles en la base de datos provista por la fundación.
	
 Cabe destacar que un ARV actúa sobre una parte esencial del virus afectando el proceso de replicación del mismo. Por esta razón existen diferentes tipos de ARVs, entre ellos los RTI (Inhibidores de Transcriptasa Reversa) y los PI (Inhibidores de la Proteasa), como se mencionan en la sección \ref{arvs} del capítulo anterior. \\

\subsection{El Proceso Computacional}

 El Proceso Computacional puede ser explicado en tres etapas: \textit{Entrada}, \textit{Procesamiento} y \textit{Salida de la información}.\\
 La \textit{Entrada de Información} es el proceso mediante el cual un sistema toma los datos que requiere para procesar la información.\\                                           
 El \textit{Procesamiento de la Información}, es la capacidad de un sistema para efectuar cálculos de acuerdo con una secuencia de operaciones preestablecidas. Esta característica de los sistemas permite la transformación de datos fuente en información que puede ser utilizada para la toma de decisiones. \\
 Por último, la \textit{Salida de la Información} es la capacidad de un sistema para mostrar la información procesada o bien datos de entrada al exterior. En ciertos casos, dichas salidas pueden constituir la entrada de otro sistema o módulo.\\
 A partir de la idea del Proceso Computacional, se describen a continuación los cambios planteados en este trabajo sobre la librería LAV.

\subsubsection{Modificación del álgebra utilizada para la obtención de combinaciones de ARVs}
	A partir de la idea del Proceso Computacional puede relacionarse a este conjunto de modificaciones como la primer etapa del mismo por tratarse de cambios referentes a la \textit{Entrada de la Información}. Es decir, incluir cambios sobre la representación actual de los ARVs, agregando información necesaria para poder dar soporte a múltiples mutaciones primarias. Entre estos cambios, se encuentran la división en grupos de las resistencias que hasta el momento conforman un ARV ademas de la información perteneciente a cada grupo, como así también la inclusión de pesos continuos sobre cada resistencia, tal como se describe en la sección \ref{alcance}. 
	
	A partir de estas modificaciones, un ARV es representado de la siguiente manera:	
	 		
	\begin{center}
	\textit{ARV} = \{ $grupo_{1}$, $grupo_{2}$, ... , $grupo_{n}$ \}
	\end{center}	
	
	\begin{flushleft}	
	donde cada grupo posee dos partes, \textit{peso\_min} el cual es un valor de punto flotante que representa el peso que debe cumplir 		una combinación de elementos de \textit{lista\_de\_resistencias} para poder ser considerada en la ge\-ne\-ra\-ción de secuencias 			mutantes:
	\end{flushleft}	
	
	$grupo_{i}$ = \{ \textit{peso\_min, lista\_de\_resistencias} \} $\forall i:1 \leq i \leq n$\\
	
	\begin{flushleft}
	A su vez, cada \textit{lista\_de\_resistencias} puede esta conformada de la siguiente manera:
	\end{flushleft}	
	
	\textit{lista\_de\_resistencias} = $\lbrace r_{1}, r_{2}, ... , r_{n}\rbrace $ 
	
	\begin{flushleft}	
	donde, $r_{i} = (pos_{i}, amin_{i}, peso_{i})$ representa una resistencia, con
	\end{flushleft}
		
	\begin{flushleft}
	$pos_{i}$ = Posición dentro de la secuencia de virus.\\
	$amin_{i}$ = Aminoácidos que se pueden aplicar en la posición $pos_{i}$.\\
	$peso_{i}$ = Valor que expresa la resistencia de $amin_{i}$ en la posición $pos_{i}$.\\
	\end{flushleft}
	
	Por otro lado, se extiende el álgebra para realizar las operaciones utilizando nucleótidos en lugar de aminoácidos.\\
	Un ARV (o un conjunto de ellos) se aplica a una secuencia nucleotídica. El cambio en la representación de aminoácidos por sus 	correspondientes codificaciones en nucleótidos, permite que el álgebra genere mejores mutantes. Esto se debe a que se analizan combinaciones que hasta entonces, no se estaban considerando, logrando así un mayor grado de certeza al momento de la elección de ARVs que conforman cada terapia. Teniendo un conjunto de terapias más eficaces, el tratamiento es más efectivo, lo que da como resultado final, un incremento en la cantidad de obstáculos para la mutación viral, manteniendo bajo el número de copias virales en el paciente.
	
\subsubsection{Armado de ranking de combinaciones de ARVs teniendo en cuenta la matriz de distancias genéticas}
	Siguiendo con la idea del Proceso Computacional, esta sección involucra cambios que están relacionados al \textit{Procesamiento de Información}, ya que es necesario cambiar la manera en la que se seleccionan las mejores combinaciones de ARVs. Para ésto se utiliza la matriz de distancias genéticas la cual nos brinda datos importantes para la selección adecuada de las combinaciones de ARVs. Dicha 	matriz, es una tabla de doble entrada que permite establecer las distancias entre el nucleótido original y el nucleótido mutado (En la sección \ref{sec:MatrizProbabilidades} se explica más en detalle este concepto). Como es de esperarse, el virus realiza su mejor jugada, y elige la mutación de menor distancia, es decir, la que le exige menos 'esfuerzo'. Por esta razón, se puede predecir el comportamiento del virus y utilizar esto a la hora de la toma de 	decisiones sobre la selección de combinaciones de ARVs.		
		
\subsubsection{Generación de todas las posibles secuencias mutantes teniendo en cuenta la secuencia inicial}	
	Finalizando con la idea del Proceso Computacional, esta sección esta directamente relacionada con \textit{la Salida de la Información}.
 La secuencia inicial del virus varía de un paciente a otro, y el proceso de selección de terapias se debe adaptar a cada paciente particular. De allí, viene la importancia de tener en cuenta este dato, para la toma de decisiones en cada paso del tratamiento.  Particularmente a la hora de aplicar un ARV (o conjuntos de ellos) a una secuencia hay que garantizar que en cada posición de la secuencia que corresponde a la posición de resistencia, no coincidan los nucleótidos de la secuencia 	inicial con ninguno de los de la posición de resistencia del ARV. Luego de esta consideración, se generan todas las posibles secuencias mutantes a partir del ranking, que van a conformar la salida del sistema desarrollado.

	
\subsection{Ejemplo de la Nueva Representación de ARVs}	
 El objetivo de esta sección es comparar la estructura de ARVs y mostrar los cambios mencionados anteriormente. Para ello, se toma el caso del ARV \textit{Didanosina} y se muestra cómo se ve afectada su representación para poder dar soporte a múltiples mutaciones primarias.

\begin{itemize}
  \item Representación anterior del ARV Didanosina
  \begin{lstlisting}[language=XML, keywordstyle=\color{blue}, morekeywords={xmlns,version,type,id,class}]
  <antiviral id="Didanosina" num = "1" type = "tRT" class = "cNRTI">  
    <resistance pos="164" aminos="R"/>
    <resistance pos="173" aminos="V"/>
  </antiviral>
  \end{lstlisting}
  
  
  \item Representación actual del ARV Didanosina
  \begin{lstlisting}[language=XML, keywordstyle=\color{blue}, morekeywords={xmlns,version,type,id,class}]
  <antiviral id="Didanosina" num = "1" type = "tRT" class = "cNRTI">
    <group min="1.0">
      <resistance pos="164" aminos="R" weight="1.0"/>
      <resistance pos="173" aminos="V" weight="1.0"/>
    </group>
  </antiviral>
  \end{lstlisting}
\end{itemize}

Como se puede apreciar, en la linea 2 del extracto de XML correspondiente a la nueva representación, aparece la noción de grupo junto con su peso mínimo(\textit{group min}) conteniendo, en este caso, las mismas dos resistencias del ARV en su version anterior. En lo que respecta a las resistencias, en las lineas 3 y 4 de la nueva representación, aparece la noción de peso continuo(\textit{weight}) que va a permitir modelar el hecho de que existen posiciones de resistencias que ofrecen más resistencias que otras. 